package asruby.lang {


import asruby.Ruby;
import asruby.runtime.Block;
import asruby.runtime.CallType;
import asruby.runtime.IRubyObject;
import asruby.runtime.ThreadContext;
import asruby.runtime.buildin.InstanceVariables;
import asruby.runtime.buildin.InternalVariables;

import flash.utils.Dictionary;
import asruby.exceptions.RuntimeException;

public class RubyUndef implements IRubyObject {

    public  function addFinalizer(finalizer:IRubyObject):void{
    }

    public  function anyToString():IRubyObject{
        return null;
    }

    public  function asString():RubyString{
        return null;
    }

    public  function asJavaString():String{
        return null;
    }

 	public function callSuper(context:ThreadContext, args:Array, block:Block):IRubyObject{
		return null;
	}
    public function callMethod(context:ThreadContext, name:String):IRubyObject {
    	return null;
    }
    public function callMethod2(context:ThreadContext, name:String, arg:IRubyObject):IRubyObject {
    	return null;
    }
    public function callMethod3(context:ThreadContext, name:String, args:Array):IRubyObject {
    	return null;
    }
    public function callMethod4(context:ThreadContext, name:String, args:Array, block:Block):IRubyObject {
    	return null;
    }
    public function callMethod5(context:ThreadContext, methodIndex:int, name:String):IRubyObject {
    	return null;
    }
    public function callMethod6(context:ThreadContext, methodIndex:int, name:String, arg:IRubyObject):IRubyObject {
    	return null;
    }

    public  function checkArrayType():IRubyObject{
        return null;
    }

    public  function checkStringType():IRubyObject{
        return null;
    }

    public function compilerCallMethod(context:ThreadContext,  name:String, args:Array,
             caller:IRubyObject,  callType:CallType,  block:Block):IRubyObject {
        return null;
    }

    public function compilerCallMethodWithIndex(context:ThreadContext, methodIndex:int,
            name:String, args:Array, caller:IRubyObject, callType:CallType, block:Block):IRubyObject {
        return null;
    }

    public  function convertToArray():RubyArray{
        return null;
    }

    public  function convertToFloat():RubyFloat{
        return null;
    }

    public  function convertToHash():RubyHash{
        return null;
    }

    public  function convertToInteger():RubyInteger{
        return null;
    }

    public  function convertToInteger2(convertMethodIndex:int, convertMethod:String):RubyInteger{
        return null;
    }

    public  function convertToString():RubyString{
        return null;
    }

    public function convertToTypeWithCheck( targetType:RubyClass, convertMethodIndex:int,
             convertMethod:String):IRubyObject {
        return null;
    }

    public  function dataGetStruct():Object{
        return null;
    }

    public  function dataWrapStruct(obj:Object):void{
    }

    public  function dup():IRubyObject{
        return null;
    }

    public  function eql(other:IRubyObject):Boolean{
        return false;
    }

    public  function eqlInternal(context:ThreadContext, other:IRubyObject):Boolean{
        return false;
    }

    public  function op_equal(context:ThreadContext, other:IRubyObject):IRubyObject{
        return null;
    }

   /*  public  function op_eqq(context:ThreadContext, other:IRubyObject):IRubyObject{
        return null;
    } */
	public function op_eqq(context:ThreadContext, other:IRubyObject):Boolean{
		return null;
	}
    public  function eql_p(other:IRubyObject):IRubyObject{
        return null;
    }

    public  function equalInternal(context:ThreadContext, other:IRubyObject):IRubyObject{
        return null;
    }

    public  function evalSimple(context:ThreadContext, evalString:IRubyObject, file:String):IRubyObject{
        return null;
    }

    public function  evalWithBinding(context:ThreadContext, evalString:IRubyObject,
             binding:IRubyObject,  file:String,  lineNumber:int):IRubyObject {
        return null;
    }

    public  function getInstanceVariable(string:String):IRubyObject{
        return null;
    }

    public  function getJavaClass():Class{
        return null;
    }

    public  function getMetaClass():RubyClass{
        throw new RuntimeException("Undef is not a real RubyObject and should never be seen");
    }

    public  function getNativeTypeIndex():int{
        return 0;
    }

    public  function getRuntime():Ruby{
        return null;
    }

    public  function getSingletonClass():RubyClass{
        return null;
    }

    public  function getType():RubyClass{
        return null;
    }

   /*  public  function id():RubyFixnum{
        return null;
    } */
	public function id():IRubyObject{
		return this;
	}
    public  function infectBy(obj:IRubyObject):IRubyObject{
        return null;
    }

    public  function inspect():IRubyObject{
        return null;
    }

    public  function isFrozen():Boolean{
        return false;
    }

    public  function isImmediate():Boolean{
        return false;
    }

    public  function isKindOf(rubyClass:RubyModule):Boolean{
        return false;
    }

    public  function isNil():Boolean{
        return false;
    }

    public  function isModule():Boolean{
        return false;
    }

    public  function isClass():Boolean{
        return false;
    }

    public  function isSingleton():Boolean{
        return false;
    }

    public  function isTaint():Boolean{
        return false;
    }

    public  function isTrue():Boolean{
        return false;
    }

    public  function rbClone():IRubyObject{
        return null;
    }

    public  function removeFinalizers():void{
    }

    public  function respondsTo(string:String):Boolean{
        return false;
    }

    public  function setFrozen(b:Boolean):void{
    }

    public  function setMetaClass(metaClass:RubyClass):void{
    }

    public  function setTaint(b:Boolean):void{
    }

    public  function hasVariables():Boolean{
        return false;
    }
    
    public  function getVariableCount():int{
        return 0;
    }
    
    public  function getInternalVariables():InternalVariables{
        return null;
    }
    
 	public function syncVariables(attrs:Array):Array {
 		return null;
    }
    
    public function getVariableList():Array {
        return null;
    }

    public function getInternalVariableList():Array {
        return null;
    }

    public  function getVariableNameList():Array{
        return null;
    }
    
    public  function getVariableMap():Dictionary{
        return null;
    }
    
    public  function getInstanceVariables():InstanceVariables{
        return null;
    }
    public function convertToInteger1():RubyInteger{
    	return null;
    }
    public function getVariableArray():Array{
    	return null;
    }
    public function toString():String{
    	return null;
    }
    public function getVariableNameArray():Array{
    	return null;
    }
    public function getArray():Array{
    	return null;
    }
    public  function getLongValue():Number{
    	return null;
    }
    public function getBlock():Block{
    	return null;
    }

}
}